package com.itzx.gmall.realtime.util

import redis.clients.jedis.{Jedis, JedisPool, JedisPoolConfig}

/**
 *
 *
 * author: yyeleven
 * create: 2020/4/23 00:53
 */
object RedisUtil {

  var jedisPool: JedisPool = _

  def getJedisClient: Jedis = {
    if(jedisPool == null) {
      // println(" 开辟一个连接池 ")
      val config = PropertiesUtil.load("config.properties")
      val host = config.getProperty("redis.host")
      val port = config.getProperty("redis.port")
      val jedisPoolConfig = new JedisPoolConfig()
      jedisPoolConfig.setMaxTotal(100) // 最大连接数
      jedisPoolConfig.setMaxIdle(20) // 最大空闲
      jedisPoolConfig.setMinIdle(20) // 最小空闲
      jedisPoolConfig.setBlockWhenExhausted(true) // 忙碌时是否等待
      jedisPoolConfig.setMaxWaitMillis(500)// 忙碌时等待时长 毫秒
      jedisPoolConfig.setTestOnBorrow(true) // 每次获得连接的进行测试
      jedisPool = new JedisPool(jedisPoolConfig, host, port.toInt)
    }
    // println(s"jedisPool.getNumActive = ${jedisPool.getNumActive}")
    // println(" 获得一个连接 ")
    jedisPool.getResource
  }

}
